﻿using Entity.Models.dto;
using Entity.Models.Entities;
using Entity.Models.vo;
using Entity.Models.vo.Menu;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace IBLL
{
    /// <summary>
    /// 菜单BLL接口
    /// </summary>
    public interface IConsumableInfoBLL
    {

        /// <summary>
        /// 耗材数据列表、搜索
        /// </summary>
        /// <param name="ConsumableInfoName">耗材名称</param>
        /// <param name="page">页数</param>
        /// <param name="limit">数据条数</param>
        /// <returns></returns>
        public List<ConsumableInfoDTO> getconsumableInfoList(string ConsumableInfoName, string page, string limit, out int cont);

        /// <summary>
        /// 添加耗材
        /// </summary>
        /// <param name="consumableInfo"></param>
        /// <returns></returns>
        bool AddConsumableInfo(ConsumableInfo consumableInfo);

        /// <summary>
        /// 删除耗材
        /// </summary>
        /// <param name="consumableInfoId"></param>
        /// <returns></returns>
        bool DalateConsumableInfo(string consumableInfoId);

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="consumableInfoIds">耗材id</param>
        /// <returns></returns>
        bool DalateConsumableInfoList(List<String> consumableInfoIds);

        /// <summary>
        /// 修改耗材信息
        /// </summary>
        /// <param name="consumableInfo"></param>
        /// <returns></returns>
        bool UpdataConsumableInfo(ConsumableInfo consumableInfo);

        /// <summary>
        /// 根据耗材id搜索
        /// </summary>
        /// <param name="consumableInfoid">耗材id</param>
        /// <returns></returns>
        ConsumableInfo getByConsumableInfo(string consumableInfoid);

        /// <summary>
        /// 下载文件
        /// </summary>
        Stream DownloadFile();

        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="stream">文件流</param>
        /// <param name="extension">文件后缀</param>
        /// <param name="userId">用户id</param>
        /// <returns></returns>
        bool Upload(Stream stream, string extension, string userId);


        /// <summary>
        /// 工作流管理物品下拉框
        /// </summary>
        /// <returns></returns>
         List<TransferVo> getOutGoodsSelect();
      
    }
}
